package com.kerrykidz.scminvoicing.dao.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import com.kerrykidz.scminvoicing.dao.model.GblScmPrdEntity;
import com.kerrykidz.scminvoicing.dao.model.ScmPurordPrdEntity;
import com.kerrykidz.scminvoicing.dao.model.ScmSupPrdEntity;
import com.rdp.framework.exception.RDPException;

@Repository
public interface ScmPurordPrdEntityMapper {
	
	/**
	 * 根据采购订单编号,供应商编号。查询采购订单商品 明细 数据
		 * @Description   
		 * List<ScmPurordPrdEntity>
		 * @author chenyu
		 * 2014年9月9日 下午2:43:32
	 */
	List<ScmPurordPrdEntity>  findPurOrderPrdByOrderId(@Param("fkPurordId") String fkPurordId,@Param("supplyId") String supplyId);
	
	
	/**
	 * 根据采购订单编号,查询采购订单商品 明细 数据
		 * @Description   
		 * List<ScmPurordPrdEntity>
		 * @author chenyu
		 * 2014年9月9日 下午2:43:32
	 */
	List<ScmPurordPrdEntity>  findPurOrderPrdListByOrderId(@Param("fkPurordId") String fkPurordId);
	/**
	 * 
	 * @Description 批量新增 采购订单商品 明细表 数据
	 * @param scmPurordPrdList
	 * @author chenyu
	 * @date 2014年09月09日下午4:39:23
	 */
	void addPurOrderPrdBatch(@Param("purOrderPrds") List<ScmPurordPrdEntity> scmPurordPrdList);
	
	
	/**
	 * 
	 * @Description 新增 采购订单商品 明细表 数据
	 * @param scmPurordPrdEntity
	 * @author chenyu
	 * @date 2014年09月09日下午4:39:23
	 */
	void insertPurOrderPrd(ScmPurordPrdEntity scmPurordPrd) throws RDPException;
	
	/**
	 * 根据采购订单编号。删除采购订单商品 明细 数据
		 * @Description   
		 * @author chenyu
		 * 2014年9月9日 下午2:43:32
	 */
	void delPurOrderPrdByOrderId(@Param("fkPurordId") String fkPurordId) throws RDPException;
	
	/**
	 * 根据采购订单编号,商品编号。删除采购订单商品 明细 数据
		 * @Description   
		 * @author chenyu
		 * 2014年9月9日 下午2:43:32
	 */
	void delPurOrderPrdByOrderIdAndPrdId(@Param("fkPurordId") String fkPurordId,@Param("fkPrdId") String fkPrdId) throws RDPException;
	
	
	ScmPurordPrdEntity getPurOrderPrdByOrderIdAndPrdId(@Param("fkPurordId") String fkPurordId,
			@Param("fkPrdId") String fkPrdId);
	
	/**
	 * 
	*
	* @Title: findProductListJoinOrderPrd
	* @Description: <p>根据采购订单商品关联 商品表， 查询所有的商品信息<p>
	* @param: <p>@param entity
	* @param: <p>@return
	* @param: <p>@throws RDPException<p>
	* @date: 2014年9月14日
	* @return: List<GblScmPrdEntity>
	* @throws 
	*
	 */
	public List<GblScmPrdEntity> findProductListJoinOrderPrd(GblScmPrdEntity entity)throws  RDPException;
	
	/**
	 * 
	* @Description: <p>根据采购订单编号，门店编号。查询可用的商品 数据<p>
	* @param: <p>@param fksupplyId ,fkBranId
	* @param: <p>@return
	* @param: <p>@throws RDPException<p>
	* @date: 2014年9月14日
	* @return: List<ScmSupPrdEntity>
	* @throws 
	*
	 */
	public List<ScmSupPrdEntity> getPurOrderPrdBySupId(@Param("fkPurordId") String fkPurordId,@Param("fksupplyId") String fksupplyId,
			@Param("fkBranId") String fkBranId)throws  RDPException;
}